﻿using System;
using System.ComponentModel.DataAnnotations;
using Tesla.Validador;
using Rendiciones.Logica.Enumeradores;

namespace Rendiciones.Logica.Modelos.Validaciones
{
    internal class ValidarPasswordUsuario : ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var usuario = validationContext.ObjectInstance as Usuario;
            if (usuario == null)
                throw new ValidationException("La validación no es compatible con el modelo que esta utilizando");

            if (usuario.ActualizarPassword)
            {
                if (string.IsNullOrEmpty(usuario.Password) || string.IsNullOrEmpty(usuario.Password2))
                    return new UsefullValidationResult(new[] { validationContext.MemberName }, EValidationResolution.Error, ErrorMessage);
                if (!usuario.Password.Equals(usuario.Password2))
                    return new UsefullValidationResult(new[] { validationContext.MemberName }, EValidationResolution.Error, ErrorMessage);
            }
            return new UsefullValidationResult(new[] { validationContext.MemberName }, EValidationResolution.Success);
        }
    }
}